10  Causation: The basics of DAGs about causation

Author

Moses Rivera, Ph.D.

Published

November 2, 2025

10.1 Introduction

In this chapter, I introduce basic elements of a powerful tool for analyzing causal relationships: directed acyclic graphs (DAGs) about causation. You may recognize some of these concepts were introduced in Chapter 6. Then, I introduce some basic concepts from Probability theory, because it will help us use DAGs to make a causal inference, even if the data didn’t come from an experiment!

In the first chapter of this book, you might remember I said: “The latter part of this course includes methods about causal inference … particularly some methods that haven’t yet permeated across the landscape of IWO psychology… When you ask your colleagues about such methods, don’t be surprised if they have no clue what you’re talking about.”

We are in that part now.

I think you will find this chapter is very straightforward, but you might believe the second half of this chapter looks scary if you just glance at the symbols. Trust me, everything is explained clearly if you read it step-by-step.

If you start to feel a little lost, here are two techniques you can try:

  1. Don’t go back, just keep reading forward a little more. Many times, temporary confusion is cleared by a subsequent paragraph.
  2. If you tried technique #1 and it didn’t help, then you should go back to re-read from a portion that you understand.

10.2 The basics of graph theory

Remember from Chapter 6 I introduced graph theory, which is an area of mathematics that focuses on objects (whether real or imaginary, such as concepts) and relationships among those objects. Figure 10.1 is a typical visual representation of a graph from graph theory.

G v1 v1 v2 v2 v1->v2 edge_1 v3 v3 v1->v3 edge_5 v2->v3 edge_2 v4 v4 v2->v4 edge_6 v5 v5 v2->v5 edge_7 v3->v4 edge_3 v3->v5 edge_8 v4->v5 edge_4
Figure 10.1: This is a collection of nodes (i.e., the circles)
  • In graph theory, a graph is a collection of nodes and any edges that connect (some or all of) those nodes.
  • A node (also called a vertex) is a basic element (of a graph) which may have zero or more edges connected to it.
  • An edge is a basic element (of a graph) which has one or two nodes connected to it. In Figure 10.1, the nodes are labeled v1 through v5, and the edges are labeled edge_1 through edge_8.
  • Each edge in Figure 10.1 has one arrowhead, which tells us they are directed edges. A directed edge is a basic element (of a graph) which is connected to exactly two nodes (no fewer) such that one of its endpoints is called its head, and the other endpoint is called its tail. The head of a directed edge is visually indicated with an arrowhead, such that the arrow is pointing in the direction of the head. In this book, I will refer to directed edges as arrows, because that’s how they’re represented in graphs.
  • The graph in Figure 10.1 is a special type of graph known as a directed acyclic graph (DAG) because:
    • all of the edges in the graph are directed edges (i.e., arrows);
    • the graph is acyclic, which means the graph contains no directed cycles. In other words, there is no collection of three or more nodes whose arrows form a cycle among those nodes. (A basic directed cycle would be: A causes B, which causes C, which causes A.)
  • In a DAG, it is useful to describe the relationships among nodes by using the same words we use to describe relationships in a family-tree:
    • A parent is any node that is the tail-side of an arrow.
    • A child is any node that is the head-side (i.e., arrowhead) of an arrow. Of course, a node can be a child of another node and a parent to a different node at the same time.
    • A node’s ancestors are any nodes that are located before it in the sequence of arrows (e.g., the parents of node X are ancestors of X, and the parents of the parents of node X are also ancestors of X).
    • A node’s descendants are any nodes that are located after it in the sequence of arrows (e.g., the children of node X are descendants of X, and the children of the children of node X are also descendants of X).
  • If a DAG’s nodes represent variables, and the arrows represent causal relationships, then the DAG is a DAG of causation (also known as a causal DAG). We can create such a DAG on a purely theoretical basis (before collecting empirical data), or we could create such a DAG after we collect empirical evidence about those variables and causal relationships.

Laypersons typically use the word graph to refer to any data-based diagram (e.g., a bar chart). However, in this book, the word graph will always refer to the meaning from graph theory (i.e., the graph-theoretic sense).

10.3 Three important structures in a DAG: chains, forks, and colliders

Figure 10.2 displays three of the most important structures in DAGs: chains, forks, and colliders.

G A A B B A->B C C B->C
(a) This is a chain.
G Y Y X X F F F->Y F->X
(b) This is a fork.
G Y Y C C Y->C X X X->C
(c) This is a collider.
Figure 10.2: Figure 10.2 (a) is a chain; Figure 10.2 (b) is a fork; Figure 10.2 (c) is a collider. We could use any letters to denote the variables in those graphs. For simplicity, I used F to denote the forking node, and C to denote the collision node.
  • In a DAG, a path is an alternating sequence of non-repeating nodes and arrows (i.e., node 1, arrow 1, node 2, arrow 2, arrow 3, …) such that they collectively form a “connected string”, like a beaded necklace. Figure 10.2 (a), Figure 10.2 (b), and Figure 10.2 (c) are very simple paths. A path can be short or long, and it can contain several chains, forks, and colliders—all at the same time!
  • A chain (Figure 10.2 (a)) is a collection of three nodes and two arrows that connect to them, such that the arrows are pointing in the same direction from the first node to the third node, like this: A\rightarrow B\rightarrow C, or like this: A\leftarrow B\leftarrow C.
  • A fork (Figure 10.2 (b)) is a collection of three nodes and two arrows that connect to them, such that the arrows are pointing away from each other, like this: X\leftarrow F\rightarrow Y.
  • A collider (Figure 10.2 (c); also known as a collider triad) is a collection of three nodes and two arrows that connect to them, such that the arrows are pointing toward each other, like this: X\rightarrow C \leftarrow Y.
    • The center node in a collider triad can be called the collision node. The other two nodes can be called the colliding spouses, because the collision node is a child of both the colliding spouses.

At this point, you might enjoy going back to Figure 10.1 to count how many chains, forks, and colliders you can identify in it.

10.4 Marginal versus Conditional independence among variables in a causal DAG

A big reason why causal DAGs help us make inferences about causation is because they give us a visual representation that helps us identify which variables are dependent on each other in the DAG, and which variables are independent of each other in the DAG. With that, we can make some inferences about causation, even if all we have is non-experimental data (i.e., observational data)!

Typically, we create a DAG based on theories and evidence from prior studies, and we want to test our newly-created theoretical DAG. To do this, we collect new data and then we inspect our dataset to see whether the relationships among the variables in our dataset match what the DAG says those relationships should be like. If our dataset agrees with the DAG, then that is some evidence that our theory might be correct! The DAG is a visual representation of our theory.

To understand how to do that, first we must understand some basics of Probability theory, which is an area of mathematics that serves as the foundation of Statistics. This course doesn’t require an in-depth understanding of Probability, and that is why I only explain the basics that we need for our purposes.

10.4.1 A quick review of probability

  • In the fields of Statistics and Probability, the most common meaning of probability is that it is a fraction that describes how many times a specified event (say, event A) would occur if we imagine we could make a nearly infinite number of observations of whatever phenomenon we’re interested in.
  • We typically use a single letter (e.g., A, B, C, …) to denote an event we’re interested in.
  • For an event A, we can denote the probability of event A like this: \mathbb{P}(A), which is read aloud as “the probability of event A or “the probability of A.
  • An event’s probability is always between 0 and 1. If an event has a probability of 0, then that event will almost surely never occur in any observations we make about the phenomenon we’re interested in, whereas an event with a probability of 1 is almost surely to occur in every observation we make about the phenomenon we’re interested in.
TipFor example…

Let’s say we want to randomly select an employee at ABC Company to interview them, but we want to know this: what is the probability that our random selection process will give us an employee whose Salary is greater than $50k?

Let’s use the symbol A to denote this event: the result of our random selection is that we end up with an employee at ABC Company that has a salary greater than $50k.

The probability of event A occurring can be written like this: \mathbb{P}(A).

\mathbb{P}(A) is simply this fraction: \mathbb{P}(A)=\displaystyle\frac{\text{how many employees at ABC Company have a salary that is greater than \$50k}}{\text{how many employees there are in ABC Company}}

If there are no employees at ABC Company with a salary greater than $50k, then \mathbb{P}(A)=0.

If we give up on ABC Company and then we go to XYZ Company so that can randomly select an employee at XYZ Company to interview them, we can use the symbol B to denote the event of randomly ending up with an employee at XYZ Company that has a salary greater than $50k, and the probability of event B occurring is denoted via \mathbb{P}(B). If there are 300 employees at XYZ Company, and 200 of them have a salary greater than $50k, then \mathbb{P}(B) is: \mathbb{P}(B)=\displaystyle\frac{200\text{ employees at XYZ Company with a salary greater than \$50k}}{300\text{ employees total in XYZ Company}}\approx 0.667

10.4.1.1 The probability of an event that involves a random variable

In the fields of Statistics and Probability, a random variable is typically denoted via an uppercase letter. If a special font like this code font is available, a random variable could be denoted like this: X. If code font is unavailable, a random variable is typically denoted via uppercase italics, like this: X. (Unfortunately, uppercase letters are used for variables and also for events, but the context should help you figure out whether the letter is referring to an event or a variable.) The output of a random variable (e.g., a real or imagined datum, or perhaps several data) is the real or imagined instance that we measure or observe about the random variable for a sample element (or population element), and it is typically denoted via the lowercase version (e.g., x or x) of whatever letter denotes the random variable.

TipFor example…

For convenience, we might denote the random variable Salary via the uppercase letter S or S. If we observe (or imagine) an employee’s Salary is $50k, then $50k is the output of S for that employee. Thus, we would use the lowercase letter s or s to refer to any one employee’s actual (or imagined) salary.

Think about a dataset in the typical format, such that each variable is its own column, and each sample element (also known as a case) is a row. Since this example focuses on employees, each row is an employee, like in the table below:

employee ID Salary
OSmith87 $49K
AJackson22 $77K
TJones03 $68K

In this example, $49k, $77k, and $68k are the observed outputs (lowercase s or s) of the Salary variable for each employee. Remember, the random variable (Salary or uppercase S) represents a concept that encompasses a universe of possibilities, whereas $49k is just one manifestation from that variable.

In the fields of Statistics and Probability, when we observe (or imagine) an output from a random variable, that is a type of event (whether real or imagined). The random variable is not an event, but the real or imagined outcome in which the random variable produces a specified output is an event.

TipFor example…

Each of these is a random variable: employee's salary, employee's performance level, employee's level of job-satisfaction. However, none of those are events.

Instead, if we have data or we imagine having data from those variables, then the real or imagined occurrences of those outputs are events.

For example, each of these lines is an example of an event:

  • employee's salary = $77k
  • employee's salary = s
  • employee's salary > $50k
  • employee's performance level < 5
  • employee's level of job-satisfaction = j
  • and so on, and so forth…

The probability of an event that involves a random variable is written in a special way. Let’s say we’re interested in any event (which we could label A) in which a random variable X produces a specified output x. We could write the probability of A like this: \mathbb{P}(A). However, that expression requires us to either memorize what the symbol A stands for, or go back to re-read the event description. It would be even more difficult to remember if the event involved multiple variables at the same time. Instead, mathematicians and researchers typically use convenient expressions like these:

  • \mathbb{P}(X=67)
  • \mathbb{P}(X=x), for all x
  • \mathbb{P}(X<x), for all x
  • \mathbb{P}(X\geq x,\text{ or }Y=y), for all x and y
  • \mathbb{P}(X\neq x,\text{ and }Y>y,\text{ and }Z=z), for all x, y, and z

In case you’re curious (this isn’t required for this course), the expression \mathbb{P}(X=x) is shorthand for: \mathbb{P}\Big(\{\omega\in\Omega:X(\omega)=x\}\Big), which is read aloud as “the probability of the set of all outcomes (lowercase omega) from our observation process, such that the random variable (uppercase) X produces the specified output (lowercase) x. \Omega (Greek uppercase letter omega) is the set of all possible outcomes from our observation process, and \omega (Greek lowercase letter omega) is any one of those possible outcomes, and X is a random variable, and x is the output of X, given \omega.

Those expressions help the reader understand more clearly what are the outputs (lowercase letters) that we’re interested in from the variables (uppercase letters) we’re investigating.

TipFor example…

Imagine we are analyzing a random variable called Salary and we denote the random variable via the uppercase letter S.

Let’s use the letter A to denote this event: the output of S is greater than $50k for any employee we’re measuring.

We could write the probability of event A like this: \mathbb{P}(A)

But a more user-friendly way to write it is this: \mathbb{P}(S>\$50k)

10.4.1.2 Conditional probabilities

A conditional probability is the probability of a specified event if we filter the total set of events, such that we’re only thinking about a smaller subset of events.

  • The probability of event A, conditional on event B, is written like this: \mathbb{P}(A\mid B), which is read aloud as “the probability of event A, conditional on event B or “the probability of event A, given event B. Thus, it is a conditional probability of event A (conditional on event B).
  • When we filter the total set of events, we’re only thinking about a smaller subset of events, and therefore we change the denominator of the probability fraction. That is why \mathbb{P}(A\mid B) can also be written like the following (assuming \mathbb{P}(B)>0): \mathbb{P}(A\mid B)=\displaystyle\frac{\mathbb{P}(A \text{ and } B)}{\mathbb{P}(B)}

The denominator of a fraction is whatever is underneath the horizontal line of the fraction (i.e., it is the number you divide by). The numerator is whatever is above the horizontal line (i.e., the number you are dividing).

TipFor example…

Let’s say we want to randomly select an employee from XYZ Company to interview them, and let’s use the symbol A to denote the event of randomly ending up with an employee at XYZ Company that has a salary greater than $50k. Thus, the probability of event A is written like this: \mathbb{P}(A).

Now, let’s say we can only do the interview in-person, and therefore we can only select among the employees who are working on campus today (not working remotely from home). We can use the symbol B to denote the event: the employee is working on campus today.

Thus, if we’re only thinking about the employees who are working on campus today, we are filtering the total number of eligible employees to a smaller number. If we want to know the probability of randomly ending up with an employee at XYZ Company that has a salary greater than $50k, given that we can only choose from employees who are working on campus today, then we would write that conditional probability like this: \mathbb{P}(A\mid B) or like this: \displaystyle\frac{\mathbb{P}(A \text{ and } B)}{\mathbb{P}(B)}

Let’s say XYZ Company has 500 employees, but only 200 of them are working on campus today, i.e., \mathbb{P}(B)=\displaystyle\frac{200}{500}. Let’s also say only 100 of the 500 employees have a salary greater than $50k AND are on campus today, i.e., \mathbb{P}(A \text{ and }B)=\displaystyle\frac{100}{500}.

Now we have all the information we need to calculate \mathbb{P}(A\mid B): \mathbb{P}(A\mid B):=\displaystyle\frac{\mathbb{P}(A \text{ and } B)}{\mathbb{P}(B)}=\frac{100\div 500}{200\div 500}= \frac{0.2}{0.4}= 0.5

Remember, a conditional probability is simply a filtered probability in which you filter the denominator into a smaller subset of the total possible events.

Remember, a conditional probability works by conditioning on an event (i.e., filtering our cases such that we only look at the cases where our chosen event is satisfied). When the conditioning event involves the output of a variable, we can also say we are conditioning on a variable. In other words, the conditioning event is this: the variable produces the output that we specify. Thus, conditioning on one or more variables is simply the process or result of filtering the cases (i.e., the rows) of a dataset, such that the filtered dataset satisfies a rule that you specify about the output of one or more of the variables in the dataset.

TipFor example…

Researchers typically format their data into a spreadsheet, such that each variable is its own column, and each sample element (also known as a case) is a row. In IWO Psychology, each row is typically a person, or a team, or a company, or a meeting instance.

Thus, when we condition on a variable, you can imagine we are filtering our spreadsheet so that we only look at rows that satisfy whatever our condition rule is.

For example, imagine you have a dataset of each employee’s Salary, their Happiness (on an interval scale from 1–10), and their Job Title.

You could calculate the correlation between Salary and Happiness, across everyone in the company. However, you could also filter the cases (i.e., filter the rows, a.k.a. condition the data) to focus only on employees whose Job Title = Engineer, and then calculate the correlation between Salary and Happiness of only those Engineers. Thus, you’ve conditioned your analysis (i.e., you conditioned on: Job Title = Engineer). Thus, you’ve calculated a conditional correlation.

If the dataset also contains each employee’s Number of years at the Company, we could filter the cases to analyze only the Engineers who’ve been at the company for more than 5 years. Thus, we could condition on two variables simultaneously. Indeed, we can condition on as many variables as we wish.

10.4.1.3 Marginal independence and Conditional independence among variables

In the fields of Probability and Statistics, two variables might be dependent on each other, or they might be independent of each other. I will explain what that means.

If two random variables (e.g., X and Y) are marginally independent of each other, we write: X\perp\!\!\!\perp Y (and that is read aloud as X and Y are marginally independent of each other”). Here is a step-by-step explanation of what’s happening when X\perp\!\!\!\perp Y:

Most mathematicians and researchers will simply say independent when they’re referring to marginal independence. That can be confusing when we’re dealing with a situation that also involves conditional independencies (which I explain next in this chapter). Thus, it’s more clear to specify what type of independence you’re talking about: marginal versus conditional.

  • \boxed{\mathbb{P}(X=x)} is the probability that the random variable X will output x in the complete dataset.
  • \boxed{\mathbb{P}(X=x\mid Y=y)} is the probability that X will output x in the smaller dataset that is filtered to only include cases where the random variable Y outputs y.
  • Those two probabilities are equal to each other if \boxed{X\perp\!\!\!\perp Y}. Thus, the probability that X will output x in the filtered dataset is the same as it is in the complete dataset—it makes no difference whether or not we condition on \boxed{Y=y}. Thus, if \boxed{X\perp\!\!\!\perp Y}, we can write \boxed{\mathbb{P}(X=x)}=\boxed{\mathbb{P}(X=x\mid Y=y)}, for all x and y.

Independence goes both ways. If random variables X and Y are independent of each other, then \mathbb{P}(Y=y) and \mathbb{P}(Y=y\mid X=x) are also equal to each other. In other words, \mathbb{P}(Y=y\mid X=x)=\mathbb{P}(Y=y).

TipFor example…

Imagine we have a large dataset of each employee’s Salary (S), their Happiness (H) (on an interval scale from 1–10), and imagine the dataset is structured in the classic format where each row is a case (i.e., an employee) and each column is a variable.

Let’s imagine Salary and Happiness are actually marginally independent of each other in this dataset. Also, let’s imagine we calculate that the mean of Salary is $50k.

Now, let’s say we condition on Happiness = 1, thus we are filtering the dataset so that we’re only including employees whose Happiness = 1. If we were to re-calculate the mean of Salary in this smaller filtered dataset, we would discover it is still $50k.

The mean of Salary didn’t change, because the calculation of the mean of Salary involves only the probability of the outputs of Salary (i.e., it only involves \boxed{\mathbb{P}(S=s)}), which is the same in the filtered dataset as in the complete dataset (i.e., \boxed{\mathbb{P}(S=s)}=\boxed{\mathbb{P}(S=s\mid H=1)}). That’s what would happen because Salary and Happiness are marginally independent of each other. If, instead, we condition on Happiness = 2, or 3, or 4, 5, 6, 7, 8, 9, or 10, we would always get the same result, because Salary and Happiness are marginally independent for all of their outputs.

Now, let’s start over and imagine Salary and Happiness are actually NOT independent of each other (i.e., they are dependent on each other). If that were true, we would find that the mean of Salary is likely different in at least one of the filtered datasets (or possibly all of them) compared to what it is in the complete dataset.

If you understand the concept of marginal independence among variables, then you likely understand the concept of conditional independence. Two variables (e.g., X and Y) are conditionally independent of each other if they are independent when you condition on a third variable (e.g., Z). That is saying: (X\perp\!\!\!\perp Y)\mid Z

and it is usually written without parentheses, like this: X\perp\!\!\!\perp Y\mid Z

If two random variables X and Y are conditionally independent (conditional on Z), we cannot assume X and Y are independent without conditioning on Z. The opposite is also true: if X and Y are independent without conditioning on Z, we cannot assume X and Y are conditionally independent (conditional on Z). This is summarized symbolically like this:

  • \boxed{X\perp\!\!\!\perp Y} doesn’t imply \boxed{(X\perp\!\!\!\perp Y)\mid Z}
  • \boxed{(X\perp\!\!\!\perp Y)\mid Z} doesn’t imply \boxed{X\perp\!\!\!\perp Y}

Thus, when talking about the independence of two variables, it is important to clarify whether we are talking about a conditional independence (e.g., \boxed{(X\perp\!\!\!\perp Y)\mid Z}), or instead marginal independence (e.g., \boxed{X\perp\!\!\!\perp Y}).

Sometimes you’ll see some authors refer to a marginal independence as an unconditional independence. Unconditional independence is a less reader-friendly phrase, because English speakers already use the word unconditional to refer to something that can never be changed or never be subjected to conditions (e.g., unconditional love, unconditional surrender). Instead, when we’re talking about a marginal independence between X and Y, we’re not saying X and Y can never be conditionally independence—it’s still possible for X and Y to be conditionally independent (conditional on Z), even if they are also marginally independent.

If X and Y are marginally independent of each other, they cannot be marginally dependent on each other, but they can still be conditionally independent of each other. Also, if X and Y are marginally dependent on each other, they can be conditionally independent of each other (conditional on Z) while at the same time being conditionally dependent on each other if we condition on some other variable W—it all depends on which variable(s) we’re conditioning on.

10.4.2 Finally: Conditional independence or marginal independence among variables in chains, forks, and colliders

Now that we’ve discussed marginal independence and conditional independence between variables, we’re ready to apply those concepts to help us identify the following relationships among the variables in a causal DAG:

  • which variables are marginally independent of each other?
  • which ones are conditionally independent of each other?
  • and which ones are allowed to be marginally (or conditionally) dependent on each other?

10.4.2.1 Conditional independence in chains

In the simple chain A\rightarrow B\rightarrow C, the DAG is telling us that A causes B, and B causes C. Thus, the DAG is telling us those variables have some association with each other—in other words, they are dependent on each other.

If we have a dataset with data from variables A, B, and C, and if the DAG A\rightarrow B\rightarrow C is a true representation of reality, and there are no other relationships between those three variables, then our data would very likely show a relationship (e.g., a correlation) between A and B, and also between B and C, and also between A and C.

However, if we condition on the middle node (i.e., B) in the chain, then A and C are independent. In other words, if the only relationships between those three variables are all represented via the chain A\rightarrow B\rightarrow C, then: (A\perp\!\!\!\perp C)\mid B

The proof of this property is beyond the scope of this course, but you can read about it in Pearl et al.’s book (2016, p. 39).

That is a useful property to understand, because we can use it to figure out whether our data support what the DAG is saying. Like I mentioned earlier: Typically, we create a DAG based on theories and evidence from prior studies, and we want to test our newly-created theoretical DAG. To do this, we collect new data and then we inspect the dataset to see whether the variables that the DAG says are likely dependent on each other actually show any type of relationship in the data, and we also check to see whether the variables that the DAG says must be independent of each other (whether marginally independent or conditionally independent) actually show no relationship in the data (e.g., a zero correlation).

10.4.2.2 Conditional independence in forks

In the simple fork X\leftarrow F\rightarrow Y, the DAG is telling us that F causes both X and Y. Thus, the DAG is telling us those variables have some association with each other—in other words, they are dependent on each other.

If we have a dataset with data from variables X, F, and Y, and if the DAG X\leftarrow F\rightarrow Y is a true representation of reality, and there are no other relationships between those three variables, then our data would very likely show a relationship (e.g., a correlation) between X and F, and also between F and Y, and also between X and Y.

X and Y are associated with each other because of their common cause (i.e., F). If X increases or decreases, it’s because F increased or decreased, which also means Y should increase or decrease because it is also caused by F.

However, if we condition on the forking node (i.e., F) in the fork, then X and Y are independent. In other words, if the only relationships between those three variables are all represented via the fork X\leftarrow F\rightarrow Y, then: (X\perp\!\!\!\perp Y)\mid F

The proof of this property is beyond the scope of this course, but you can read about it in Pearl et al.’s book (2016, p. 40).

10.4.2.3 Marginal independence in colliders

In the simple collider X\rightarrow C\leftarrow Y, the DAG is telling us that C is caused by both X and Y. Although this DAG looks somewhat similar to a fork, it operates very differently.

If we have a dataset with data from variables X, C, and Y, and if the DAG X\rightarrow C\leftarrow Y is a true representation of reality, and there are no other relationships between those three variables, then our data would very likely show a relationship (e.g., a correlation) between X and C, and also between Y and C, but not between X and Y. In other words, if the DAG is correct, then X and Y are marginally independent of each other.

In the collider X\rightarrow C\leftarrow Y, the fact that X and Y are marginally independent of each other can be proven by a simple simulation of data. You can also read about it in Pearl et al.’s book (2016, p. 40).

Thus, if the only relationships between those three variables are all represented via the collider X\rightarrow C\leftarrow Y, then: X\perp\!\!\!\perp Y

Also, if we condition on the collision node (i.e., C) or any of the descendants of the collision node, then that allows X and Y to be dependent on each other, conditional on C (i.e., they’re allowed to be conditionally dependent on each other, conditional on C).

10.5 What’s next?

In this chapter, I introduced the basic structures of a causal DAG, and I ended with a description of some useful implications of those structures, especially the conditional independence in chains and forks, and marginal independence in colliders.

In the next chapter, we will use those properties to help make causal inferences from a causal DAG.

10.6 Suggested Readings

Many of the discoveries about the use of DAGs for making inferences about causation were developed by Judea Pearl. He’s authored or co-authored three recent books on the topic, and in a podcast episode in 2023 he recommended that readers consume those books in the following sequence (because it starts with the most reader-friendly book and ends with the most technical book):

  1. The Book of Why: The New Science of Cause and Effect (2018);
  2. Causal Inference in Statistics: A Primer (2016);
  3. Causality: Models, Reasoning and Inference (2009).

For a more in-depth but still easy-to-read introduction to Probability theory, I recommend Blitzstein and Hwang’s book (2019).

References

Blitzstein, J. K., & Hwang, J. (2019). Introduction to Probability (2nd edition). Chapman and Hall/CRC. https://doi.org/10.1201/9780429428357
Pearl, J. (2009). Causality: Models, Reasoning and Inference (2nd edition). Cambridge University Press. https://bayes.cs.ucla.edu/BOOK-2K/
Pearl, J., Glymour, M., & Jewell, N. P. (2016). Causal Inference in Statistics: A Primer. Wiley. https://bayes.cs.ucla.edu/PRIMER/
Pearl, J., & Mackenzie, D. (2018). The Book of Why: The New Science of Cause and Effect. Basic Books. https://bayes.cs.ucla.edu/WHY/